package br.com.foxinline.manager.acao;

import br.com.foxinline.enums.TipoPessoa;
import br.com.foxinline.modelo.Imovel;
import br.com.foxinline.modelo.Pessoa;
import br.com.foxinline.servico.ImovelServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class ManagerEmitirCertidaoNegativa implements Serializable {

    @EJB
    ImovelServico imovelServico;
    private Pessoa cliente;

    @PostConstruct
    public void init() {
        instanciar();
    }

    private void instanciar() {
        this.cliente = new Pessoa();
        this.cliente.setTipoPessoa(TipoPessoa.FISICA);
    }

    public void emitirCertidao() {

        List<Imovel> imoveis = imovelServico.imoveisPertencentes(this.cliente);

        if (imoveis.isEmpty()) {
            imovelServico.emitirCertidaoNegativa(this.cliente);
        } else {
            Mensagem.messagemWarn("Esse cliente possui imóveis matriculados.");
        }

    }

    public void limpar() {
        instanciar();
    }

    public Pessoa getCliente() {
        return cliente;
    }

    public void setCliente(Pessoa cliente) {
        this.cliente = cliente;
    }
}
